<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>    <!--导入Vue包-->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>

<!-- 控制区 -->
<div id="app">

    <!-- 定于输出框 -->
    <h4>{{msg}}</h4>
    <!-- 定义开始按键 input type='类型' value='名称' :title="悬停显示内容" @click="点击后发生的事件" -->
    <input type="button" value="开始" :title="msg2" @click="begin">
    <!-- 定义结束案件 -->
    <input type="button" value="结束" :title="msg3" @click="stop">

</div>


<!-- 定义vue内app例程 -->
<script>
    var vm = new Vue({
        el:'#app',// VM实例名称
        data:{// 数据属性
            msg:' 0123456789  <======]==o ',
            msg2:'点我开始',
            msg3:'点我停止',
            // 定义触发状态
            intervalId: null
        },
        methods:{// 方法属性
            begin() {

                // 跑马灯运行状态监测，避免重复出发跑马灯效果
                if (this.intervalId != null) return;

                //调用定时器函数setInterval(() => {事件},时间)
                this.intervalId = setInterval(() =>{
                    // console.log(this.msg)
                    // 获取到头的第一个字符/
                    var start = this.msg.substring(0,1);
                    // 获取到后面的所有字符串
                    var end = this.msg.substring(1);
                    // 对this.msg重新赋值
                    this.msg = end + start
                }, 10)

            },
            stop() {
                // 重置定时器clearInterval(触发状态)
                clearInterval(this.intervalId)
                // 跑马灯状态重置
                this.intervalId = null;
            }
        }
    })
</script>
</body>
</html>